package com.ruoyi.business.mapper;

import java.util.List;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.business.domain.CourseVideo;
import com.ruoyi.business.domain.vo.VideoDetailVo;
import org.apache.ibatis.annotations.Param;

/**
 * 小节视频Mapper接口
 * 
 * @author 最爱喝兽奶
 * @date 2022-08-02
 */
public interface CourseVideoMapper extends BaseMapper<CourseVideo>
{
    /**
     * 查询小节视频
     * 
     * @param id 小节视频主键
     * @return 小节视频
     */
    public CourseVideo selectCourseVideoById(Long id);

    /**
     * 查询小节视频列表
     * 
     * @param CourseVideo 小节视频
     * @return 小节视频集合
     */
    public List<CourseVideo> selectCourseVideoList(CourseVideo CourseVideo);

    /**
     * 新增小节视频
     * 
     * @param CourseVideo 小节视频
     * @return 结果
     */
    public int insertCourseVideo(CourseVideo CourseVideo);

    /**
     * 修改小节视频
     * 
     * @param CourseVideo 小节视频
     * @return 结果
     */
    public int updateCourseVideo(CourseVideo CourseVideo);

    /**
     * 删除小节视频
     * 
     * @param id 小节视频主键
     * @return 结果
     */
    public int deleteCourseVideoById(Long id);

    /**
     * 批量删除小节视频
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteCourseVideoByIds(Long[] ids);

    List<VideoDetailVo> selectByChapterId(String id);

    String selectUrlById(String videoId);

    String selectNameById(String videoId);

    /**
     * 查询出这个章节下的下一个小节
     * @param sectionNumber
     * @param chapterId
     * @return
     */
    CourseVideo selectNextId(@Param("sectionNumber") Long sectionNumber, @Param("chapterId") String chapterId);

    /**
     * 查询出这个章节的上一个小节
     * @param sectionNumber
     * @param chapterId
     * @return
     */
    CourseVideo selectPreId(@Param("sectionNumber") Long sectionNumber, @Param("chapterId") String chapterId);

    /**
     * 查询当前章节下的最大的小节序号数
     * @param chapterId
     * @return
     */
    Long selectMaxSectionNum(@Param("chapterId") String chapterId);
}
